package com.hengpeng.itfinbase.persist;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Enumerated;

import com.hengpeng.common.web.annotation.HtmlInput;
import com.hengpeng.common.web.annotation.HtmlInputType;
import com.hengpeng.itfinbase.idAssign.AbstractAssign18IdEntity;

/**
 * <pre>
 * 提款文件处理信息
 * </pre>
 * @author shanguogang
 * @version 1.0, 2015-8-12
 */
@Entity
public class DrawFile extends AbstractAssign18IdEntity
{

	public static enum DealState
	{
		DOWN_SUCCESS("下载成功"), OVER("提款任务完成"), UPLOAD_FAIL("上传失败"), UPLOAD_SUCCESS("上传成功"), UPLOAD_WAIT("等待上传");

		private String text;

		DealState(String text)
		{
			this.text = text;
		}

		public String getText()
		{
			return text;
		}

		public void setText(String text)
		{
			this.text = text;
		}
	}

	private static final long serialVersionUID = 7166257230367502988L;

	/**
	 * 银行交易流水号
	 */
	@Column(length = 30)
	@HtmlInput(label = "批量银行返回流水号", type = HtmlInputType.TEXT, index = 90, nullable = true)
	private String bankSequence;

	/**
	 * 创建时间
	 */
	private Date createTime;

	/**
	 * 提现文件名
	 */
	@HtmlInput(label = "下载文件名", type = HtmlInputType.TEXT, index = 7, nullable = false)
	private String down_fileName;

	/**
	 * 提现文件路径
	 */
	@HtmlInput(label = "下载文件路径", type = HtmlInputType.TEXT, index = 8, nullable = false)
	private String down_path;

	/**
	 * 文件下载时间
	 */
	@HtmlInput(label = "下载时间", type = HtmlInputType.TEXT, index = 6, nullable = false)
	private Date downTime;

	/**
	 * 支付商ID
	 */
	@HtmlInput(label = "支付商", type = HtmlInputType.TEXT, index = 2, nullable = false)
	private String providerId;

	/**
	 * 提现文件状态
	 */
	@Column(length = 20)
	@Enumerated(javax.persistence.EnumType.STRING)
	@HtmlInput(label = "提款文件状态", type = HtmlInputType.TEXT, index = 11, labelProperty = "text", nullable = false)
	private DealState state;

	/**
	 * 批量请求流水号
	 */
	@Column(length = 30)
	@HtmlInput(label = "批量请求流水号", type = HtmlInputType.TEXT, index = 9, nullable = true)
	private String transNo;

	/**
	 * 提现文件名
	 */
	@HtmlInput(label = "上传文件名", type = HtmlInputType.TEXT, index = 3, nullable = false)
	private String upload_fileName;

	/**
	 * 提现文件路径
	 */
	@HtmlInput(label = "上传文件路径", type = HtmlInputType.TEXT, index = 4, nullable = false)
	private String upload_path;

	/**
	 * 文件上传时间
	 */
	@HtmlInput(label = "上传时间", type = HtmlInputType.TEXT, index = 5, nullable = false)
	private Date uploadTime;

	public String getBankSequence()
	{
		return bankSequence;
	}

	public Date getCreateTime()
	{
		return createTime;
	}

	public String getDown_fileName()
	{
		return down_fileName;
	}

	public String getDown_path()
	{
		return down_path;
	}

	public Date getDownTime()
	{
		return downTime;
	}

	public String getProviderId()
	{
		return providerId;
	}

	public DealState getState()
	{
		return state;
	}

	public String getTransNo()
	{
		return transNo;
	}

	public String getUpload_fileName()
	{
		return upload_fileName;
	}

	public String getUpload_path()
	{
		return upload_path;
	}

	public Date getUploadTime()
	{
		return uploadTime;
	}

	public void setBankSequence(String bankSequence)
	{
		this.bankSequence = bankSequence;
	}

	public void setCreateTime(Date createTime)
	{
		this.createTime = createTime;
	}

	public void setDown_fileName(String down_fileName)
	{
		this.down_fileName = down_fileName;
	}

	public void setDown_path(String down_path)
	{
		this.down_path = down_path;
	}

	public void setDownTime(Date downTime)
	{
		this.downTime = downTime;
	}

	public void setProviderId(String providerId)
	{
		this.providerId = providerId;
	}

	public void setState(DealState state)
	{
		this.state = state;
	}

	public void setTransNo(String transNo)
	{
		this.transNo = transNo;
	}

	public void setUpload_fileName(String upload_fileName)
	{
		this.upload_fileName = upload_fileName;
	}

	public void setUpload_path(String upload_path)
	{
		this.upload_path = upload_path;
	}

	public void setUploadTime(Date uploadTime)
	{
		this.uploadTime = uploadTime;
	}
}
